{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Feature Selection based on self organizing maps\n",
    "This notebook presents a way to achieve feature selection through self organizing maps. The code is based in an algorithm proposed in this [paper](https://link.springer.com/chapter/10.1007%2F978-3-319-89935-0_6). **_The selection process strongly depends on two parameters_**:\n",
    "1. *How well the trained SOM represents the data (since the weights are used during the selection).*\n",
    "2. *A parameter \"a\" which is arbitarily defined by the user. Values between 0.03 and 0.06 have been proved to work well.*\n",
    "\n",
    "For reasons of simplicity and complementarity this notebook builds on the [democracy-index example](https://github.com/JustGlowing/minisom/blob/master/examples/DemocracyIndex.ipynb). So first we load the data by exactly the same way."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.insert(0, '../')\n",
    "%load_ext autoreload\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.patches import Patch\n",
    "%matplotlib inline\n",
    "\n",
    "from minisom import MiniSom\n",
    "from sklearn.preprocessing import minmax_scale, scale\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# download from wikipedia and reorganization\n",
    "import os.path\n",
    "if not os.path.isfile('democracy_index.csv'):\n",
    "    wikitables = pd.read_html('https://en.wikipedia.org/wiki/Democracy_Index',\n",
    "                              attrs={\"class\":\"sortable\"}, header=0)\n",
    "    democracy_index = wikitables[0]\n",
    "    democracy_index.columns = [c.lower().replace(' ', '_') for c in democracy_index.columns]\n",
    "    democracy_index.rename(columns={'score': 'democracy_index', \n",
    "                                    'functioning_ofgovernment': 'functioning_of_government',\n",
    "                                    'politicalparticipation': 'political_participation',\n",
    "                                    'politicalculture': 'political_culture',\n",
    "                                    'civilliberties': 'civil_liberties'}, inplace=True)\n",
    "    democracy_index.category = democracy_index.category.replace('Flawed democracy[a]', 'Flawed democracy')\n",
    "    democracy_index = democracy_index[:-1]\n",
    "    democracy_index.to_csv('democracy_index.csv')\n",
    "    print('data downloaded from Wikipedia')\n",
    "else:\n",
    "    # pre-downloaded file\n",
    "    democracy_index = pd.read_csv('democracy_index.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To demonstrate the method, we choose some of the variables that have numeric values and set \"democracy index\" as the target variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "feature_names = ['democracy_index', 'electoral_processand_pluralism', 'functioning_of_government',\n",
    "                 'political_participation', 'political_culture', 'civil_liberties']\n",
    "\n",
    "X = democracy_index[feature_names].values\n",
    "X = scale(X)\n",
    "\n",
    "feature_df = pd.DataFrame(X, columns=feature_names)\n",
    "target = feature_df.iloc[:,0]\n",
    "Features = feature_df.iloc[:,1:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A simple method to select variables is through correlation. By plotting a correlation matrix we see that all the variables are highly correlated with democracy index."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sn\n",
    "\n",
    "feat_num = len(feature_names)\n",
    "\n",
    "# plt.figure(figsize=(feat_num,feat_num/2))\n",
    "corrMatrix = feature_df.corr().round(2)\n",
    "sn.heatmap(corrMatrix, annot=True)\n",
    "\n",
    "# plt.tight_layout()\n",
    "    \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another way is to rank the importance of the variables in relevance with the target variable using a regression tree. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.08210176 0.04062965 0.00936197 0.02779484 0.84011178]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeRegressor\n",
    "model = DecisionTreeRegressor(random_state=0)\n",
    "model.fit(Features, target)\n",
    "print(model.feature_importances_) #use inbuilt class feature_importances of tree based classifiers\n",
    "# #plot graph of feature importances for better visualization\n",
    "feat_importances = pd.Series(model.feature_importances_, index=Features.columns)\n",
    "feat_importances.nlargest(Features.shape[1]).plot(kind='barh')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In both of the cases above, \"civil liberties\" and \"electoral processand pluralism\" appear to be the most related variables. Let's train a self organised map."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "category_color = {'Full democracy': 'darkgreen',\n",
    "                  'Flawed democracy': 'limegreen',\n",
    "                  'Hybrid regime': 'darkorange',\n",
    "                  'Authoritarian': 'crimson'}\n",
    "colors_dict = {c: category_color[dm] for c, dm in zip(democracy_index.country,\n",
    "                                                      democracy_index.category)}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " [ 1000 / 1000 ] 100% - 0:00:00 left \n",
      " quantization error: 0.03822093702335934\n",
      " topographic error: 0.041916167664670656\n"
     ]
    }
   ],
   "source": [
    "size = 15\n",
    "som = MiniSom(size, size, len(X[0]),\n",
    "              neighborhood_function='gaussian', sigma=1.5,\n",
    "              random_seed=1)\n",
    "\n",
    "som.pca_weights_init(X)\n",
    "som.train_random(X, 1000, verbose=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The topographic error is small so the map represents the data well."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "W = som.get_weights()\n",
    "plt.figure(figsize=(10, 10))\n",
    "for i, f in enumerate(feature_names):\n",
    "    plt.subplot(3, 3, i+1)\n",
    "    plt.title(f)\n",
    "    plt.pcolor(W[:,:,i].T, cmap='coolwarm')\n",
    "    plt.xticks(np.arange(size+1))\n",
    "    plt.yticks(np.arange(size+1))\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We see that the two varibles that ranked first in the previous methods have almost identcal planes. This is a hint that they are strongly dependent, so having both of them in a model is redundant. We are hoping that a SOM based selection can prevent that. Let's define the algorithm, and perform the selection."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def som_feature_selection(W, labels, target_index = 0, a = 0.04):\n",
    "    \"\"\" Performs feature selection based on a self organised map trained with the desired variables\n",
    "\n",
    "    INPUTS: W = numpy array, the weights of the map (X*Y*N) where X = map's rows, Y = map's columns, N = number of variables\n",
    "            labels = list, holds the names of the variables in same order as in W\n",
    "            target_index = int, the position of the target variable in W and labels\n",
    "            a = float, an arbitary parameter in which the selection depends, values between 0.03 and 0.06 work well\n",
    "\n",
    "    OUTPUTS: selected_labels = list of strings, holds the names of the selected features in order of selection\n",
    "             target_name = string, the name of the target variable so that user is sure he gave the correct input\n",
    "    \"\"\"\n",
    "\n",
    "\n",
    "    W_2d = np.reshape(W, (W.shape[0]*W.shape[1], W.shape[2])) #reshapes W into MxN assuming M neurons and N features\n",
    "    target_name = labels[target_index]\n",
    "\n",
    "\n",
    "    Rand_feat = np.random.uniform(low=0, high=1, size=(W_2d.shape[0], W_2d.shape[1] - 1)) # create N -1 random features\n",
    "    W_with_rand = np.concatenate((W_2d,Rand_feat), axis=1) # add them to the N regular ones\n",
    "    W_normed = (W_with_rand - W_with_rand.min(0)) / W_with_rand.ptp(0) # normalize each feature between 0 and 1\n",
    "\n",
    "    Target_feat = W_normed[:,target_index] # column of target feature\n",
    "\n",
    "    # Two conditions to check against a\n",
    "    Check_matrix1 = abs(np.vstack(Target_feat) - W_normed)\n",
    "    Check_matrix2 = abs(np.vstack(Target_feat) + W_normed - 1)\n",
    "    S = np.logical_or(Check_matrix1 <= a, Check_matrix2 <= a).astype(int) # applie \"or\" element-wise in two matrices\n",
    "\n",
    "    S[:,target_index] = 0 #ignore the target feature so that it is not picked\n",
    "\n",
    "    selected_labels = []\n",
    "    while True:\n",
    "\n",
    "        S2 = np.sum(S, axis=0) # add all rows for each column (feature)\n",
    "\n",
    "        if not np.any(S2 > 0): # if all features add to 0 kill\n",
    "            break\n",
    "\n",
    "        selected_feature_index = np.argmax(S2) # feature with the highest sum gets selected first\n",
    "\n",
    "        if selected_feature_index > (S.shape[1] - (Rand_feat.shape[1] + 1)): # if random feature is selected kill\n",
    "            break\n",
    "\n",
    "\n",
    "        selected_labels.append(labels[selected_feature_index])\n",
    "\n",
    "        # delete all rows where selected feature evaluates to 1, thus avoid selecting complementary features\n",
    "        rows_to_delete = np.where(S[:,selected_feature_index] == 1)\n",
    "        S[rows_to_delete, :] = 0\n",
    "\n",
    "#     selected_labels = [label for i, label in enumerate(labels) if i in feature_indeces]\n",
    "    return selected_labels, target_name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Target variable: democracy_index\n",
      "Selected features ['functioning_of_government', 'political_participation', 'civil_liberties', 'political_culture']\n"
     ]
    }
   ],
   "source": [
    "selected_features, target_name = som_feature_selection(W, feature_names, 0, 0.04)\n",
    "print(\"Target variable: {}\\nSelected features {}\".format(target_name, selected_features))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
